package com.zdp.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zdp.pojo.vo.ItemCommentVO;
import com.zdp.pojo.vo.SearchItemsVO;
import com.zdp.pojo.vo.ShopcartVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface ItemsMapperCustom {
    // 分页查询商品不同程度的评价
    List<ItemCommentVO> queryItemComments(Page<ItemCommentVO> pageParams, @Param("paramsMap") Map<String, Object> paramsMap);

    // 根据商品名称模糊搜索
    List<SearchItemsVO> searchItems(Page<SearchItemsVO> pageParams, @Param("paramsMap") Map<String, Object> paramsMap);

    // 根据商品分类id搜索商品
    List<SearchItemsVO> searchItemsByThirdCat(Page<SearchItemsVO> pageParams, @Param("paramsMap") Map<String, Object> paramsMap);

    // 通过商品规格id集合查询商品信息(用于渲染购物车)
    public List<ShopcartVO> queryItemsBySpecIds(@Param("paramsList") List specIdsList);

    // 乐观锁方式扣减库存将查询和扣减以及判断库存是否足够合为一条sql
    public int decreaseItemSpecStock(@Param("specId") String specId,
                                     @Param("pendingCounts") int pendingCounts);
}
